Method for sequencing polynucleotides

ABSTRACT

A method for obtaining a nucleotide sequence that is indicative of the sequence of a target polynucleotide molecule T. The method makes use of hybridization data obtained by incubating T with nucleotide probes. A score is assigned to each of a plurality of candidate nucleotide sequences based upon the hybridization data and upon at least one reference nucleotide sequence. A candidate nucleotide sequence in then selected having an essentially maximal score.

FIELD OF THE INVENTION

This invention relates to computational methods in molecular biology, and more specifically to methods for determining the sequence of a polynucleotide.

REFERENCES

Baines, W., and Smith, G. C., J Theor. Biology, 135:303-307 (1988).

Ben-Dor, A., Pe'er, I., Shamir, R., and Sharan, R., In Proceedings of the Tenth International Conference on Combinatorial Pattern Matching (CPM '99), 88-100 (1999), New York: ACM Press.

Cargill, M., Altshuler, D., Ireland, J., Sklar, P., Ardlie, K., Patil, N., Lane, C. R., Lim, E. P., Kalyanaraman, N., Nemesh, J., Ziaugra, L, Friedland, L., Rolfe, A., Warrington, J., Lipshutz, R., Daley, G. Q., and Lander, E. S., Nature Genetics, 22:231-238 (1999).

Drmanac, R., and Crkvenjakov, R., Yugoslav Patent Application 570 (1987).

Durbin, R., Eddy, S., Krogh, A., and Mitchison, G., Biological Sequence Analysis: Probabilistic Models of proteins and Nucleic Acids, Cambridge University Press, (1998).

Eddy, S. R., Current Opinions in Structural Biology, 6(3):361-365 (1996).

Hirschberg, D. S., Communications of the ACM, 18,6:341-343 (1975).

Jukes, T. H., and Cantor, C. R., Mammalian Protein Metabolism, New York: Academic Press 21-123 (1969).

Khrapko, K. R., Lysov, Y. P., Khorlyn, A. A., Shick, V. V., Florentiev, V. L., and Mirzabekov, A. D., FEBS Letters, 256:118-122 (1989).

Kimura, M., Journal of Molecular Evolution, 16:111-120 (1980).

Krogh, A., Brown, M. Mian, S., Sjolander, M., and Haussler, D., Applications to protein modeling. Technical Report UCSC-CRL-93-32, Department of Computer and Information Sciences, University of California at Santa Cruz (1993).

Krogh, A., Brown, M., Mian S., Sjolander, M. and Haussler, D., Appliations to protein modeling 235(5):1501-1531 (1994).

-   -   Lysov, Y, Floretiev, V., Khorlyn, A., Khrapko, K., Shick, V, and         Mirzabekov, A., Dokl, Acad Sci., USSR, 303:1508-1511 (1988).

Macevices, S.C., International Patent Application PS US89 04741 (1989). National Center for Biotechnology Information, 2000, A database of single nucleotide polymorphisms, World Wide Web address: ncbi.nlm.nih.gov/SNP./

Pevzner, P. A., and Lipshutz, R. J., Mathematical Foundations of Computer Science, LNCS 841:143-158 (1994).

Pevzner, P. A., Lysov, Y. P., Khrapko, K. R., Belyavsky, A. V., Florentiev, V. L., and Mirzabekov, A. D., J. Biomol. Struct. Dyn. 7:63-73 (1989).

Preparata, F., Frieze, A., and Upfal, E., Journal of Computational Biology 6(3-4):361-368 (1999).

Skiena, S. S., and Sundaram, G., J. Comput. Biol. 2:333-353 (1995).

Smith, T. F., and Waterman, M. S., Journal of Molecular Biology 147(1):195-197 (1981).

Southern, E. M., Maskos, U., and Elder, J. K., Genomics 13:1008-1017 (1992).

Southern E., UK patent Application GB 8,810,400 (1988).

Southern, E. M., Trends in Genetics 12:110-115 (1996).

Wang, D. G., Fan, J., Siao, C., Berno, A., Young P., Sapolsky, R., Ghandour, G., Perkins, N., Winchester, E., Spencer, J., Kruglyak, L., Stein, L., Hsie, L., Topalogiou, T., Hubbell, E., Robinson, E., Mittrnann, M., Morris, M.S., Shen, N., Kilburn, D., Rioux, J., Nusbaum, C., Lipshutz, R., Chee, M., and Lander, E. S., Science 280:1077-1082.

Yang, Z., Molecular Biology and Evolution 10:1396-1401.

BACKGROUND OF THE INVENTION

Sequencing by hybridization (SBH) is a method for sequencing a polynucleotide such as a DNA molecule (Bains & Smith 1988, Lysov et al. 1988, Southern 1988, Drmanac and Crkvenjakov 1987, Macevics 1989). In this method, a chip, or microarray is used consisting of a surface upon which all possible oligonucleotide probes of a particular length k (referred to herein as “k-mers”) are immobilized (Southern 1996). The DNA molecule whose sequence is to be determined, referred to as the “target molecule”, is allowed to hybridize to the k-mers on the chip. The target molecule and the k-mers on the chip may all be single stranded molecules. Alternatively, a double stranded target may first be cut into fragments having single stranded “sticky ends”, and the k-mers on the chip may be the sticky ends of double stranded molecules. Ideally, a single stranded target or the sticky end of a double stranded target hybridizes to a k-mer on the chip if and only if the sequence complementary to the k-mer occurs somewhere in the target sequence or the sticky end. Thus, in principle, it is possible to experimentally determine the “k-spectrum” of the target (the set of all k-long substrings present in the target). In practice, however, the data are ambiguous due to the ability of the target to bind to k-mers that are only partially complementary to one of its substrings. Thus, any binarization of the hybridization signal will contain errors.

The goal of SBH is to determine the target sequence from the target spectrum. However, even if the target spectrum were error free, the target sequence is not uniquely determined by the spectrum. If the number of sequences consistent with the spectrum is large, there is no satisfactory method to select the true sequence. Theoretical analysis and simulations (Southern et al., 1992, Pevzner and Lipshutz 1994) have shown that even when the spectrum is errorless and the correct multiplicity of each k-mer in the target sequence is known, the average length of a uniquely reconstructible target sequence using a chip of 8-mers is only about two hundred nucleotides, far below the length of a DNA molecule that may be sequenced by electrophoresis.

Let Σ=(A,C,G,T) designate the set of nucleotides composing a DNA molecule. M=4 is the “alphabet size”. A DNA sequence is a string over Σ which is denoted herein between braces (< >). The k-spectrum of a target sequence T of length L, T=<t₁, t₂, . t_(L)>, is the set of all k-long substrings (k-mers) of T. For each k-mer {overscore (x)}=<x₁, x₂, . x_(k)>in εΣ^(k), we define T({overscore (x)})to be 1 if {overscore (x)} is a substring of T, and 0 otherwise. We denote K=M^(k), the number of k-mers. A hybridization experiment measures, for each k-mer {overscore (x)} in εΣ^(k), an intensity of its hybridization with the target.

The result of an SBH experiment may be described by a graph in which each candidate target sequence is represented as a path in a graph (Pevzner et al., 1989). The graph is a directed de-Bruijn graph G(V,E) whose vertices are labeled by all the (k-1)-mers (the set of vertices V=Σ^(k−1)), and its edges are labeled by k-mers, (the set of edges E=Σ^(k)). The edge labeled <x₁, x₂ . . . X_(k)>connects the vertex <x₁, x₂ . . . x_(k−1)>to the vertex <x₂ . . . x_(k)>. There is a 1—1 correspondence between L-long candidate target sequences and (L−k+1)- long paths in G, whose edge labels comprise the target spectrum. Hereafter, we interchangeably refer to edges and their labels, and also to sequences and their corresponding paths.

Since k-mers may reoccur in the target sequence, the paths do not have to be simple. When the spectrum is perfect and the multiplicities of the k-mers in the spectrum are known, every solution is an Eulerian path (Pevzner et al. 1989). In practice, however, the spectrum is not perfect and the multplicities are not known.

-   -   Alternative chip designs (Bains and Smith 1988, Khrapko et al         1989, Pevzner et al 1991, Preparata et al. 1999, Ben-Dor et al.         1999), as well as interactive protocols (Skiena and         Sundararn 1995) havebeen suggested, often assuming additional         information, in order to reduce the ambiguity of the         hybridization-based reconstruction.

Nucleotide sequences from different sources may resemble each other, due to a common ancestral gene. This phenomenon is encountered within a species, between duplicated regions within a genome, and between individuals within a population. Small differences in sequences, referred to as “Single Nucleotide Polymorphisms” or SNPs, efficiently serve as genetic markers that are useful in medicine. Thus the detection and genotyping of SNPs has become an important task of human geneticists. The evolution of homologous sequences from a common ancestral gene is mainly due to nucleotide substitution. Insertions and deletions of nucleotides are also known to have occurred during evolution of homologous sequences, though at lower rates.

A DNA molecule having a known sequence and known to be homologous to a target molecule has not yet been used to reduce the ambiguity of SBH data in order to determine the target sequence.

SUMMARY OF THE INVENTION

In the following description and set of claims, two parameters are considered to be equivalent to each other if they are proportional to each other.

The present invention provides a method for sequencing a target sequence. In accordance with the invention, experimental spectrum data obtained from a DNA chip is combined with sequence information of a reference DNA molecule. The reference molecule is preferably a molecule believed to be homologous with the target. For example, the target sequence may be a mutant gene and the reference sequence the previously sequenced normal gene. As another example, the target sequence may be a human gene and the reference sequence the homologous gene in another organism. A score is defined for each sequence in a set of candidate target sequences based upon a simultaneous comparison of the candidate sequence with the spectrum and with the reference sequence. A candidate target sequence is then selected having a essentially maximal score. Calculating the score does not require knowledge of the multiplicities of the k-mers in the k-spectrum. Moreover, unlike all prior art algorithms, the score does not assume that the spectrum is perfect.

The invention therefore provides a novel probabilistic method that handles imperfect hybridization data with unknown multiplicities. Thus, in accordance with the invention the hybridization of the target T with the k-mer on the DNA chip complementary to {overscore (x)} is described by probabilities P₀({overscore (x)}) and P₁({overscore (x)}) of the observed hybridization signal when T({overscore (x)})=0, and T({overscore (x)})=1, respectively The results of a hybridization experiment are described by the “probabilistic spectrum” (PS ) defined as the pair (P₀,P₁) of functions P_(i): Σ^(k)→[0, 1]. If the experiment were perfect, i.e., if P₀({overscore (x)}) and P₁({overscore (x)}) are either 0 or 1 with P₀({overscore (x)})+P₁({overscore (x)}) 1, then the PS would represent the k-spectrum. In practice, however, P₀({overscore (x)}) and P₁({overscore (x)})are both positive There is thus a chance 1−P₀({overscore (x)}) for a false positive (a k-mer ({overscore (x)}) not occurring in T, whose complementary sequence produces a hybridization signal indicative of hybridization) and a chance 1−P₁({overscore (x)}) for a false negative (a k-mer ({overscore (x)}) occurring in T, whose complementary sequence produces a signal indicative of no hybridization). (When handling probabilities, some of which are perfect, problems of division by zero might occur. This is avoided by implicitly perturbing probabilities 0 and 1 to _(ε)and 1−_(ε).)

The probability of obtaining a specific spectrum PS when T is used as the target is referred to as the “experimental likelihood”. The experimental likelihood is calculated assuming that the hybridization results of the target to different k-mer probes are mutually independent. In one embodiment of the invention, an experimental likelihood L^(e)({circumflex over (T)}) is used that does not assume knowledge of the multiplicities of each k-mer in the sequence. L^(e)({circumflex over (T)}) is given by: $\begin{matrix} {{L^{e}\left( \hat{T} \right)} = {{{Prob}\left( {{PS}❘\hat{T}} \right)} = {\prod\limits_{\overset{\rightarrow}{x} \in \quad\sum^{k}}\quad{P_{\hat{T}{(\overset{\rightarrow}{x})}}\left( \overset{\rightarrow}{x} \right)}}}} & (1) \end{matrix}$ Taking logarithms and defining ${\omega\left( \overset{\rightarrow}{x} \right)} = {\log\frac{P_{1}\left( \overset{\rightarrow}{x} \right)}{P_{0}\left( \overset{\rightarrow}{x} \right)}}$ we can write: $\begin{matrix} {{\log\quad{P_{\hat{T}{(\overset{\rightarrow}{x})}}\left( \overset{\rightarrow}{x} \right)}} = \left\{ \begin{matrix} {\log\quad{P_{0}\left( \overset{\rightarrow}{x} \right)}} & {{{if}\quad{\hat{T}\left( \overset{\rightarrow}{x} \right)}} = 0} \\ {{\log\quad{P_{0}\left( \overset{\rightarrow}{x} \right)}} + {\omega\left( \overset{\rightarrow}{x} \right)}} & {{{if}\quad{\hat{T}\left( \overset{\rightarrow}{x} \right)}} = 1.} \end{matrix} \right.} & \left( \text{2a} \right) \end{matrix}$ Hence, $\begin{matrix} {{\log\quad{L^{e}\left( \hat{T} \right)}} = {{\sum\limits_{\overset{\rightarrow}{x} \in {\sum\limits_{\quad}^{\quad}\quad k}}^{\quad}\quad{\log\quad P_{0}\quad\left( \overset{\rightarrow}{x} \right)}} + {\sum\limits_{{\hat{T}{(\overset{\rightarrow}{x})}} = 1}\quad{{\omega\left( \overset{\rightarrow}{x} \right)}.}}}} & \left( \text{2b} \right) \end{matrix}$

The first term is a constant (independent of TP), and is omitted hereafter.

In another embodiment, an approximate likelihood {tilde over (L)}({circumflex over (T)}) is used, that is defined as follows: Let p=e₀ . . . e_(L−k) be the path in G corresponding to {circumflex over (T)} and define $\begin{matrix} {{\log{{\overset{\sim}{L}}^{e}\left( \hat{T} \right)}} = {\sum\limits_{i = 0}^{L - k}\quad{{\omega\left( e_{i} \right)}.}}} & (3) \end{matrix}$

{tilde over (L)}^(e) =L^(e)({circumflex over (T)}) for a path in which all edges have a multiplicity of 1, and is otherwise an approximation to L^(e)({circumflex over (T)}). {tilde over (L)}({circumflex over (T)}) has the advantage of being easily computable in a recursive manner: log{tilde over (L)}^(e)(e ₀ , . . . e _(l))=log{tilde over (L)}^(e)(e ₀ , . . . e _(l−1))+ω(e _(l))  (4) In yet another einbodinent, an experimental likelihood L ^(e)({circumflex over (T)}) is used that takes into account the multiplicities of edges. In this case, the probabilistic spectrum consists of probabilities P_(i)({overscore (x)}), denoting the probability of the observed hybridization signal when the multiplicity of x in the target is i. L ^(e)({circumflex over (T)}) is defined by: $\begin{matrix} {{\underset{\_}{L^{e}}\left( \hat{T} \right)} = {{{Prob}\left( {{PS}❘\hat{T}} \right)} = {\prod\limits_{\overset{\rightarrow}{x} \in \quad\sum^{k}}{P_{\underset{\_}{\hat{T}}{(\overset{\rightarrow}{x})}}\left( \overset{\rightarrow}{x} \right)}}}} & \left( \text{4b} \right) \end{matrix}$ where {circumflex over (T)}({overscore (x)}) is the multiplicity of {overscore (x)} in {circumflex over (T)}.

Thus in its first aspect, the invention provides a method for obtaining a candidate sequence, the candidate nucleotide sequence being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal I({overscore (x)}) upon incubating T with a polynucleotide {overscore (x)} for each polynucleotide {overscore (x)} in a set E of polynucleotides, the method comprising the steps of:

-   -   (a) for each polynucleotide {overscore (x)} in the set E of         polynucleotides, obtaining a probability P₀({overscore (x)}) of         the hybridization signal I({overscore (x)}) when the sequence         {overscore (x)} is not complementary to a subsequence of T and a         probability P₁({overscore (x)}) of the hybridization signal when         the sequence x is complementary to a subsequence of T; so as to         obtain a probabilistic spectrum (PS) of T;     -   (b) assigning a score to each of a plurality of candidate         nucleotide sequences, the score being based upon the         probabilistic spectrum and upon at least one reference         nucleotide sequence H; and     -   (c) selecting one or more candidate nucleotide sequences having         an essentially maximal score.

In its second aspect, the invention provides a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for obtaining a candidate nucleotide sequence, the candidate nucleotide sequence being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal I({overscore (x)}) upon incubating T with a polynucleotide x for each polynucleotide {overscore (x)} in a set E of polynucleotides, the method comprising the steps of:

-   -   (a) for each polynucleotide x in the set E of polynucleotides,         obtaining a probability P₀({overscore (x)}) of I({overscore         (x)}) when the sequence {overscore (x)} is not complementary to         a subsequence of T and a probability P₁({overscore (x)}) of         I({overscore (x)}) when the sequence {overscore (x)} is         complementary to a subsequence of T; so as to obtain a         probabilistic spectrum (PS) of T;     -   (b) assigning a score to each of a plurality of candidate         nucleotide sequences, the score being based upon the         probabilistic spectrum and upon at least one reference         nucleotide sequence H; and     -   (c) selecting a candidate nucleotide sequence having an         essentially maximal score.

In its third aspect the invention provides a computer program product comprising a computer useable medium having computer readable program code embodied therein for obtaining a candidate nucleotide sequence, the candidate nucleotide sequence being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal l({overscore (x)}) upon incubating T with a polynucleotide {overscore (x)} for each polynucleotide {overscore (x)} in a set E of polynucleotides, the computer program product comprising:

-   -   (a) for each polynucleotide {overscore (x)} in the set E of         polynucleotides, computer readable program code for causing the         computer to obtain a probability P₀({overscore (x)}) of         I({overscore (x)}) the sequence x is not complementary to a         subsequence of T and a probability P₁({overscore (x)}) of         I({overscore (x)}) when the sequence {overscore (x)} is         complementary to a subsequence of T;     -   (b) computer readable program code for causing the computer to         assign a score to each of a plurality of candidate nucleotide         sequences, the score being based upon the probabilistic spectrum         and upon at least one reference nucleotide sequence H; and     -   (c) computer readable program code for causing the computer to         select a candidate nucleotide sequence having an essentially         maximal score.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

First Embodiment

In this embodiment, the unknown target sequence T=<t₁ . . . t₁>has a known, homologous reference sequence H=<h₁. . . h₁>. H and T are known to differ from each other by nucleotide substitutions without insertions or deletions (indels). This would be the case, for instance, when the target T is a mutant sequence whose wild type sequence H has already been sequenced, and one expects that nucleotide substitutions are the only cause of variability between H and T (statistically, substitutions are much more prevalent than indels (Wang et al. 1998)). A set of M×M position specific substitution matrices M⁽¹⁾, . . . , M⁽¹⁾ are used, where for each position j along the sequence: M ^((j)) [i, i′]=Prob(t _(j) =i|h _(j) =i′) (5) for nucleotides i and i′εΣ. for nucleotides i and i′εΣ.

The matrices M^((j)) may be the same for all j, or may different for different positions j. The matrices M^((j)) are used to calculate a distribution on the space of possible target sequences. This “prior distribution for ungapped homology”, D^(U), is given, for each candidate target sequence T by: $\begin{matrix} {{D^{u}\left( \hat{T} \right)} = {{{Prob}\left( {\hat{T}❘H} \right)} = {\prod\limits_{j = 1}^{l}\quad{M^{(j)}\left\lbrack {t_{j},h_{j}} \right\rbrack}}}} & (6) \end{matrix}$ One may recursively compute: D ^(u)(t ₁ . . . t _(j))=(t ₁ . . . t _(j−1)). M ^((j)) [t _(j) , h _(j)]  (7)

We denote L^((j))[x,y]≡log M^((j))[x,y] .

The probability of a candidate target sequence {circumflex over (T)}. given the probability spectrum PS and the reference sequence H is: $\begin{matrix} {{{Prob}\left( {{\hat{T}❘H},{PS}} \right)} = \frac{{{Prob}(H)} \cdot {{Prob}\left( {\hat{T}❘H} \right)} \cdot {{Prob}\left( {{{PS}❘H},\hat{T}} \right)}}{{Prob}\left( {H,{PS}} \right)}} & (8) \end{matrix}$

Given {circumflex over (T)}, the hybridization signal is independent of H: P rob(PS|H,{circumflex over (T)})=P rob(PS|{circumflex over (T)})

Thus, omitting the constant $\frac{{Prob}(H)}{{Prob}\left( {H,{PS}} \right)}$ we can write: P rob({circumflex over (T)}|H, PS)≅D ^(u)({circumflex over (T)})·L ^(e)({circumflex over (T)})  (9a) P rob({circumflex over (T)}|H,PS)≅D ^(u)({circumflex over (T)})·{tilde over (L)}^(e)({circumflex over (T)})  (9b) or P rob({circumflex over (T)}|H,PS)≅D ^(u)({circumflex over (T)})· L ^(e)({circumflex over (T)})  (9c)

Taking logarithms, the following “ungapped scores” of a candidate target are obtained: S core ₁ ^(u)({circumflex over (T)})=logL ^(e)({circumflex over (T)})+logD ^(u) ({circumflex over (T)})  (10a) S core ₂ ^(u)({circumflex over (T)})=log{tilde over (L)} ^(e)({circumflex over (T)})+logD ^(u)({circumflex over (T)})  (10b) S core ₃ ^(u)({circumflex over (T)})=log L ^(e)({circumflex over (T)})+logD ^(u) ({circumflex over (T)})  (10c)

With Score^(u) _(l), Score^(u) ₂ or Score ^(u) ₃, the higher the score of a sequence {circumflex over (T)}, the more likely it is to be the target sequence. The highest scoring candidate sequence may be determined by any method known in the art. In the search for the highest scoring candidate sequence, complexity is preferably reduced by deleting from the graph edges for which {tilde over (L)}^(e)({circumflex over (T)}) L^(e)({circumflex over (T)}) or L ^(e)({circumflex over (T)}) is less than a predetermined constant. Isolated vertices corresponding to highly improbable (k−1)-mers, are also preferably deleted from the graph.

For example, using {tilde over (L)}^(e)({circumflex over (T)}), the search for a high scoring candidate sequence may be performed by the following algorithm referred to herein as “Algorithm A ”. In accordance with Algorithm A, for each vertec {right arrow over (y)}=(y₁ . . . y_(k−1)εΣ^(k−1), and integer j=k−1, k, k+1, . . . , l , let S^(u)[{right arrow over (y)},j] be the maximum score of a j-long sequence ending with {right arrow over (y)} aligned to h₁ . . . h_(j). Initialize, for each {right arrow over (y)}: $\begin{matrix} {{S^{u}\left\lbrack {\overset{\rightarrow}{y},{k - 1}} \right\rbrack} = {\sum\limits_{j = 1}^{k - 1}{L^{(j)}\left\lbrack {y_{j},h_{j}} \right\rbrack}}} & (11) \end{matrix}$ Loop over j=k, . . . , l, and for each vertex {right arrow over (y)}=y₁ . . . y_(k−1)recursively update $\begin{matrix} {{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}}}} & \left( {12a} \right) \end{matrix}$ Finally, return: $\begin{matrix} {{{MAX}\quad{Score}^{u}} = {\max\limits_{\overset{\rightarrow}{y} \in V}{S^{u}\left\lbrack {\overset{\rightarrow}{y},l} \right\rbrack}}} & \left( {12b} \right) \end{matrix}$

A sequence T* attaining the maximal score is found from the matrix S^(u) as is known in the art, for example, by saving trace-back pointers: $\begin{matrix} {{P\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {\underset{{\overset{\rightarrow}{Z} = {< {Z_{0}Z_{1}\ldots\quad Z_{K - 1}} >}},{E = {{({\overset{\rightarrow}{Z},\overset{\rightarrow}{y}})} \in c}}}{\arg\quad\max}\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}}} & \left( \text{13a} \right) \\ {{MAXPtr} = {\underset{\overset{\rightarrow}{y} \in V}{argmax}\quad{S^{u}\left\lbrack {\overset{\_}{y},l} \right\rbrack}}} & \left( \text{13b} \right) \end{matrix}$

The maximum-scoring path in the graph is then followed, by setting:

Z¹=MAXPtr, and for all j =k, . . . ,l: Z^(j−1)=P[Z^(j),j]. Denote Z^(j)=<Z^(j) ₁z^(j) ₂ . . . z^(j) _(k−1)>.

The final result is the sequence of nucleotides <z^(k−1) _(1, z) ^(k−1) _(2, . . . z) ^(k−1) _(k−1), z^(k) _(k−1), z^(k+1) _(k−1), . . . z¹ _(k−1)>

The time complexity is O(lK), since the maximization in (12 a),(13 a) is a maximum of only a constant number (four) of terms. Although the complexity is exponential in k, it is constant for a given microarray (currently feasible values re k=8 or 9). Moreover, the complexity scales linearly with the size of the hybridization experimental results, which are part of the input.

Space complexity requires a more elaborate analysis. When naively using this algorithm, it requires O(lK) memory space, which is quite high for current technology microarrays. We now detail how we can modify the algorithm to reduce space complexity.

Observe, that this algorithm consists of two computations: Computing the optimal score (equations (11),(12a) and (12b)), and reconstructing the optimal sequence (equations (13a) and (13b)). The first task, of computing the optimal score alone, is space-efficient: it can be accomplished using space which is linear in the (effective) size of the hybridization experimental data, that is, O([K]) space.

By following the paradigm of Hirschberg (Hirschberg 1975), for example, for linear-space pair-wise alignment, a version of the algorithm is obtained which requires only linear space. The reduced space complexity is traded for time complexity, which increases by an O(log 1) factor.

For each position j =l, l '1, . . . k, k−1, the score of the entire sequence is decomposed. The total score is represented as a sum of two expressions: the contribution of its (j−k+l)-prefix, which equals the score of this prefix computed by S^(u), plus the contribution of the corresponding suffix. Formally, for each vertex {overscore (y)} y₁ . . . y_(k−1)εV , let R^(u) [{overscore (y)}j ] be the maximum contribution to the score of a (l−j+k−l )-long sequence beginning with {overscore (y)} aligned to h_(j−k+2) . . . h_(l).

Initialize, for each {overscore (y)}: R ^(u) [{right arrow over (y)},l]=0  (14)

Loop over j=l−1, 1−2, . . . k−1, and for each vertex {overscore (y)}=y₁ . . . y_(k−1) recursively update: $\begin{matrix} {{R^{u}\left\lbrack {\overset{->}{y},j} \right\rbrack} = {\max\limits_{e = {{({\overset{->}{y},\overset{->}{z}})} \in E}}\left\{ {{R^{u}\left\lbrack {\overset{->}{z},{j + 1}} \right\rbrack} + {\omega(e)} + {L^{({j + 1})}\left\lbrack {z_{k - 1},h_{j + 1}} \right\rbrack}} \right\}}} & (15) \end{matrix}$

Observe that, for all k−l ≦j ≦l $\begin{matrix} {{{MAX}\quad{Score}^{u}} = {\max\limits_{\overset{->}{y} \in V}\left\{ {{S^{u}\left\lbrack {\overset{->}{y},j} \right\rbrack} + {R^{u}\left\lbrack {\overset{->}{y},j} \right\rbrack}} \right\}}} & (16) \end{matrix}$

Equation (16) can be used to decompose the problem into two similar problems, of half its size. Recursively solving these. sub-problems gives a divide-and-conquer approach for finding the optimal sequence. The linear space algorithm is therefore as follows:

-   -   1. If the length l of the target is smaller than some constant         C, for example, 25 nucleotides:         -   Solve the problem directly, according to the dynamic program             of Equations (11), (12a), (12b), (13a) and (13b).             Otherwise,     -   2. Set $m = {\frac{l + k - 1}{2}.}$     -   3. For each j =k−l, . . . ,m:         -   Compute S^(u)[{overscore (y)},j] (following equations (11)             and (12a)) for all {right arrow over (y)}, re-using space.     -   4. For each j =l, l−1, . . . , m:         -   Compute R^(u)[{overscore (y)},j] (following equations (14)             and (15)) for all {overscore (y)}, re-using space.     -   5. Find         ${\overset{->}{y}}_{m} = {\arg\quad{\max\limits_{\overset{->}{y} \in V}\left\{ {{{S^{u}\left\lbrack {\overset{->}{y},m} \right\rbrack} + {R^{u}\left\lbrack {\overset{->}{y},m} \right\rbrack}},} \right.}}$         thereby computing: MAXScore^(u), by (16).     -   6. Recursively compute:     -    (a) The optimal sequence aligned to h_(l) . . . h_(m)ending         with {overscore (Y)}_(m).     -    (b) The optimal sequence aligned to (h_(m) . . . h_(l))         beginning with {overscore (Y)}_(m)

Observe, that for each {overscore (y)}, j, the values of S^(u)[{overscore (y)},j] and R^(u){overscore (y)}j, are computed a total of log l times. Thus the algorithm takes O([K]l log 1) time and O([K]) space,. using the effective spectrum.

Second Embodiment: substitutions and deletions

In this embodiment, the unknown target sequence T=t₁ . . . t₁· differs from the reference H=(h, . h,), by substitutions and deletions only, without insertions.

Denote the probability of initiating a gap right before h_(j) (aligning h_(j) to space) is 2^(α) ^(j) . Similarly, β_(j) is the logarithm of the probability for gap extension at h_(j). Also define β_(j)=log(1−2^(β) ^(j) ) αj=log(1−2^(α) ^(j) ). To overcome boundary problems at the ends of the sequence, we extend the alphabet by including left and right space characters: {overscore (Σ)}=Σ∪, . We augment the reference sequence by the string ^(k) on its left and ^(k) on the right. We extend the substitution matrix by using probabilities that force alignment of each of and to itself. Formally, we define: $\begin{matrix} {\overset{\_}{\Sigma^{k - 1}} = {\Sigma^{k - 1}\begin{matrix} \bigcup & \left. {{{\left\{ {\overset{->}{x}\quad\overset{->}{z}} \right.\overset{->}{x}} = \vartriangleright^{j}},{\overset{->}{z} \in \Sigma^{k - 1 - j}}} \right\} \\ \bigcup & \left. {{{\left\{ {\overset{->}{z}\quad\overset{->}{x}} \right.\overset{->}{z}} \in \Sigma^{j}},{\overset{->}{x} = \vartriangleleft^{k - 1 - j}}} \right\} \end{matrix}}} & (17) \end{matrix}$

We arbitrarily set ω({overscore (y)}) to 0 for each {overscore (y)}ε{overscore (Σ^(k−1))} |Σ^(k−1) . Thus, the weighted de-Bruijn graph is naturally extended over {overscore (Σ^(k−1))}, and so is [G]=([V], [E]), its effective subgraph. Hereafter, we use the notation [G] for the extended graph. As with the previous embodiment, in order to reduce complexity, edges for which {tilde over (L)}^(e)({overscore (T)}) or L^(e)({overscore (T)}) is less than E are preferably deleted from the graph. Isolated vertices corresponding to highly improbable (k−1)-mers, are also preferably deleted from the graph.

The search for a high scoring candidate sequence may be performed by the following algorithm referred to herein as “Algorithm B”. In accordance with Algorithm B, for each {overscore (y)}=y₁ . . . y_(k−1)ε[V], j=k=1, k, k+1, . . . , S^(d)[{overscore (y)},j] is defined as the maximum score of aligning a sequence ending with {overscore (y)} to h_(l) . . . h_(j)where h_(j) is aligned to a gap (and y⁻¹ is aligned to some h₁ . . . h_(j)). Further T^(d)[{overscore (x)},j] is defined as the maximum score of aligning a sequence ending with y₁ . . . y_(k−1), to h_(l) . . . h_(j)where he aligned to y_(k−1). Initialize, for each {overscore (y)}: S ^(d) [{right arrow over (y)}, k−1]=−∞;  (19) $\begin{matrix} {{T^{d}\left\lbrack {\overset{->}{y},{k - 1}} \right\rbrack} = \left\{ \begin{matrix} 0 & {\overset{->}{y} = \vartriangleright^{k - 1}} \\ {- \infty} & {otherwise} \end{matrix} \right.} & (20) \end{matrix}$

Loop over j =k, . . . , 1, and for each {right arrow over (y)}=y₁, . . . y_(k−l)ε, [V], recursively update: S ^(d) [{right arrow over (y)}, j]=max {T ^(d) [{right arrow over (y)}, j−1] +αa_(j) , S ^(d) [{right arrow over (y)}, j−1]+β_(j)  (21) $\begin{matrix} {{T^{d}\left\lbrack {\overset{->}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{->}{z,}\quad\overset{->}{y}})} \in E}}\left\{ {{\omega(e)} + {\max\begin{Bmatrix} {{T^{d}\left\lbrack {\overset{->}{z},{j - 1}} \right\rbrack} + {\hat{\alpha}}_{j}} \\ {{S^{d}\left\lbrack {\overset{->}{z},{j - 1}} \right\rbrack} + {\hat{\beta}}_{j}} \end{Bmatrix}}} \right\}}}} & (22) \end{matrix}$ Finally, return: MAX Score ^(d) =T ^(d)[^(k−1) , l]  (23)

The complexity of this algorithm is still O(l[K]) and a linear space variant can be obtained, as described in the previous embodiment. A sequence T* attaining the maximal score is then formed from the matrix T^(d) as is known in the art, for example, by saving trace-back pointers to follow the maximally scoring path in analogous manner to that described in the previous embodiment.

Third Embodiment: Substitutions, Deletions and Insertions.

In this embodiment, a target sequence is determined when the target is known to be obtained from the reference by substitutions, insertions and deletions. The algorithm is an extension of the dynamic programs of the previous embodiments.

Denote by T_(j) the target prefix whose last nucleotide is aligned to h_(j) in the reference sequence. Further denote by a_(j) (respectively b_(j)) the log-probability of initiating (extending) an insertion in the target after T_(j), and define â_(j)=1−a_(j), {circumflex over (b)}_(j) =1=b _(j).

Consider the weighted graph (G,ω). Define the K×K matrix W as follows: $\begin{matrix} {{W\left\lbrack {\overset{->}{x},\overset{->}{y}} \right\rbrack} = \left\{ \begin{matrix} 2^{w{(\overset{->}{y})}} & {{{The}\quad\left( {k - 1} \right)} - {{suffix}\quad{of}\quad\overset{->}{x}}} \\ \quad & {{{is}\quad{the}\quad\left( {k - 1} \right)} - {{prefix}\quad{of}\quad\overset{->}{y}}} \\ 0 & {Otherwise} \end{matrix} \right.} & (24) \end{matrix}$

W^(′)[{right arrow over (x)}, {right arrow over (y)}]is thus the probability of moving from {right arrow over (x )} to {right arrow over (y)} along i edges. The probability of an insertion of length i after T_(j) is a_(j)b^(i) _(j){circumflex over (b)}_(j). Suppose that the prefix T_(j) ends with {overscore (x)}. Then a_(j)b₁ ^(i=1){circumflex over (b)}_(j)W^(′)[{right arrow over (x)},{right arrow over (y)}] is the probability of T_(j+1) ending with {right arrow over (y)} and being i nucleotides longer than T_(j). The matrix W′ governing the stochastic progression from T_(j) to T_(j+1) is calculated as follows: $\begin{matrix} {W^{\prime} = {{{\hat{a}}_{j}b_{j}W^{2}{\hat{b}}_{j}} + {a_{j}b_{j}^{2}W^{3}{\hat{b}}_{j}\quad\ldots}}} & {(25)} \\ {= {{{\hat{a}}_{j}W} + {a_{j}b_{j}{\hat{b}}_{j}W^{2}{\sum\limits_{i \geq 2}{b_{j}^{i - 2}W^{i - 2}}}}}} & {(26)} \\ {= {{{\hat{a}}_{j}W} + {a_{j}b_{j}{\hat{b}}_{j}{W^{2}\left( {I - {b_{j}W}} \right)}^{- 1}}}} & {(27)} \end{matrix}$

A new weighted graph (G′,ω′) is now defined as follows. The vertex set of G is also the vertex set of G′. The edge set E′ of G′ is the set of all pairs {right arrow over (x)}, {right arrow over (y)} with W′[{right arrow over (x)},{right arrow over (y)}]>0. Each such edge e=[{overscore (x)}{overscore (,)}y] is associated with a weight w′(e)=log W′[{right arrow over (x)}, {right arrow over (y)}].

The search for a high scoring candidate sequence may be performed by the following algorithm referred to herein as “Algorithm C”. In accordance with Algorithm C, Algorithm B of the second embodiment is applied to (G′, ω′) instead of (G, ω).

In contrast to G, degrees in G′ are not bounded by 4. Therefore, computing each dynamic program cell has complexity O(K) in the worst case, with the total complexity of the algorithm being O(l|E′|). Again, considering only the effective size of the graph allows more efficient computation, taking O(l|[E′]|).

Fourth Embodiment: Substitutions, Deletions and Insertions.

In this embodiment, homology between nucleotide sequences is described by Hidden Markov Models (HMMs) using a set Q of Markov chain states with a predefined set of allowed transitions between them. For each level (position along the sequence) j=1, . . . , l_(Q), Q includes three states: M_(j)(match), I_(j) (insert), and D_(j) (delete). M_(j) and D_(j) can be reached from the three (j−1) (th) level states. I_(j)can be reached from the three (j)-(th) level states (including a self-loop). Transition probabilities are as described in previous sections, e.g., a_(j)=ProbS(M_(j) , I_(j)). Additionally, each insert or match state, q, induces a vector of emission probabilities M^(q), where M^(q)[i ] is the probability that the target nucleotide is i. We denote L^(q)[i]≡0 for q=D_(j), L^(q)[i] ≡log M^(q)[i] otherwise. We write lpb(X)≡log Prob(X) for short.

The search for a high scoring candidate sequence may be performed by the following algorithm referred to herein as “Algorithm D”. In accordance with Algorithm D, a three dimensional array S is defined, where for each qεQ,{right arrow over (y)}=y₁ . . . y_(k−1)ε[V]=r=k, . . . , L, S[q,{right arrow over (y)},r] is defined as the maximum score of an r-long sequence ending with (y₁ . . . y_(k−1)>, whose alignment to the profile ends in q. Thus, initialize: S[q _(start.) ^(k−1) , k−1]=0  (28) S[q,{right arrow over (y)},k−1]=−∞for other values of {right arrow over (y)},q  (29)

Loop over r=k, . . . 1, and for each {right arrow over (y)}=y₁ . . . y_(k−1)ε[V]_(p) r≦l_(Q), recursively update: $\begin{matrix} {{S\left\lbrack {q,\overset{->}{y},r} \right\rbrack} = {{L^{q}\left\lbrack y_{k - 1} \right\rbrack} + {\underset{\underset{{{{q^{\prime}}q^{\prime}} \mid}\quad\rightarrow q}{e = {{({E,q})} \in E}}}{\max\quad}\left\{ {{S\left\lbrack {q^{\prime},\overset{->}{z},{r - 1}} \right\rbrack} + {{lpb}\left( {q^{\prime} \mid}\rightarrow q \right)} + {\omega(e)}} \right\}}}} & (30) \end{matrix}$ Finally, return: $\begin{matrix} {{{MAX}\quad{Score}} = {\max\limits_{l}\left\{ {S\left\lbrack {{q_{{end}\quad 1} \vartriangleleft^{k - 1}},l} \right\rbrack} \right\}}} & (31) \end{matrix}$

A sequence T^(*) is maximal score is then found in a manner similar to that described in the previous embodiments.

-   -   This algorithm requires O(l_(Q) ·[K]·L) time and space, where L         is an upper bound on the size of the target sequence. As with         the previous embodiments, the complexity of this algorithm can         be reduced to O(l_(Q) ·[K] ·L log L) time and O(l_(Q) ·[K])         memory. Furthermore, one can consider the dynamic program as         filling a l_(Q) ×L matrix, with a [K]-long vector in each matrix         cell. Since all values far from the main diagonal of this matrix         should be negligible, preferably only values within a distance         less than a predetermined constant R to the main diagonal are         calculated, reducing the complexity to O(R(l_(Q)+L) ·[K] ·log L)         time and O(R(l_(Q)+L)·[K]) space.         Fifth Embodiment: Summation over all paths

In this embodiment the graph nodes (HMM states and k-mers) that are most likely to be visited at a certain position along the target sequence are obtained. The “Forward-Backward” algorithm is used (see, e.g., Durbin et al., 1998) providing the likelihood summed over all paths entering a node, instead of the likelihood of the maximum path. The only change to the equation presented thus far is that max operators are changed into log-sum-of-exponents. More specifically, equations (12a), (12b), (15), (16), (20), (21), (29), and (30) are re-written, respectively, as follows: $\begin{matrix} {{S^{u}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\log{\sum\limits_{e = {({\overset{\rightharpoonup}{z},{\overset{\rightharpoonup}{y} \in E}})}}^{\quad}{\exp\quad\left( {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right)}}}}} & \left( {12a^{\prime}} \right) \\ {{MAXScore}^{u} = {\log{\sum\limits_{\overset{\rightharpoonup}{y} \in V}^{\quad}{\exp\left( {S^{u}\left\lbrack {\overset{\rightharpoonup}{y},l} \right\rbrack} \right)}}}} & \left( {12b^{\prime}} \right) \\ {{R^{u}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} = {\log{\sum\limits_{e = {{({\overset{\rightharpoonup}{y},\overset{\rightharpoonup}{z}})} \in E}}^{\quad}{\exp\left( {{R^{u}\left\lbrack {\overset{\rightharpoonup}{z},{j + 1}} \right\rbrack} + {\omega(e)} + {L^{({j + 1})}\left\lbrack {z_{k - 1},h_{j + 1}} \right\rbrack}} \right)}}}} & \left( 15^{\prime} \right) \\ {{MAXScore}^{u} = {\log{\sum\limits_{\overset{\rightharpoonup}{y} \in V}^{\quad}{\exp\left( {{S^{u}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} + {R^{u}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack}} \right)}}}} & \left( 16^{\prime} \right) \\ {{S^{d}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} = {\log\left( {{\exp\left( {{T^{d}\left\lbrack {\overset{\rightharpoonup}{y},{j - 1}} \right\rbrack} + \alpha_{j}} \right)} + {\exp\left( {{S^{d}\left\lbrack {\overset{\rightharpoonup}{y},{j - 1}} \right\rbrack} + \beta_{j}} \right)}} \right)}} & \left( 20^{\prime} \right) \\ {{T^{d}\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\log{\sum\limits_{e = {{({\overset{\rightharpoonup}{z},\overset{\rightharpoonup}{y}})} \in E}}^{\quad}{\exp\left( {\omega(e)} \right)}}} + {\log\left( {{\exp\left( {{T^{d}\left\lbrack {\overset{\rightharpoonup}{z},{j - 1}} \right\rbrack} + {\hat{\alpha}}_{j}} \right)} + {\exp\left( {{S^{d}\left\lbrack {\overset{\rightharpoonup}{z},{j - 1}} \right\rbrack} + {\hat{\beta}}_{j}} \right)}} \right)}}} & \left( 21^{\prime} \right) \\ {{S\left\lbrack {q,\overset{\rightharpoonup}{y},r} \right\rbrack} = {{L^{q}\left\lbrack y_{k - 1} \right\rbrack} + {\sum\limits_{\substack{e = {{({E,q})} \in E} \\ q^{\prime}❘{q^{\prime}\mapsto q}}}^{\quad}{\exp\left( {{S\left\lbrack {q^{\prime},\overset{\rightharpoonup}{z},{r - 1}} \right\rbrack} + {l\quad p\quad{b\left( q^{\prime}\mapsto q \right)}} + {\omega(e)}} \right)}}}} & \left( 29^{\prime} \right) \\ {{MAXScore} = {\log{\sum\limits_{l}^{\quad}{\exp\left( {S\left\lbrack {{q_{{end}\quad 1} \vartriangleleft^{k - 1}},l} \right\rbrack} \right)}}}} & \left( 30^{\prime} \right) \end{matrix}$ Sixth Embodiment: Enhancements

In this embodiment the exact likelihood calculated according to Equation 10a of several top-scoring candidates found using the approximated likelihood (Equation 10b) is calculated. These sequences are then re-ranked. This 2-phase filtering is more discriminative than approximated scoring, while still tractable using the formulae presented.

If the score of a dynamic programming cell is very low, that cell probably does not participate in the maximum solution. This allows discarding such cells, without risking loss of the true optimum. Computing time and space may thus be saved.

The invention may be used for simultaneously re-sequencing several short targets, instead of a single long sequence. This scenario arises when considering many exons of a single gene. The invention may also be generalized to deal with DNA chips that do not contain the set of all k-mers.

When the set of oligonucleotides on the microarray is not the set of all k-mers, a graph is constructed consisting, as vertices, instead of all the (k−1)-mers, all the prefixes and suffixes of oligonucleotides on the microarray. Edges in this graph connect two vertices if there is one base pair suffix (suffix) addition to one of them, that makes the other its proper suffix (prefix). The scoring mechanism remains the same. This also applies for oligonucleotides containing “gaps” or “universal bases” (Preparata et al., 1999).

The invention may be used also for sequencing polypeptides. Given a polypeptide chain homologous to a target, and given a collection of probabilities of occurrence of sub-chains along the target, our algorithms will find the optimal candidate target sequence.

EXAMPLE

The invention was implemented and tested on simulated data. Nucleotide substitutions were equiprobable and insertions and deletions were not allowed. As a reference sequence, prefixes of the gene-rich human mitochondrial sequence, (Accession Number J01415) were used. For each reference sequence, the following were generated:

-   -   1. A target sequence generated according to a prescribed         probability q of substitution, defining the matrix M as 1-q on         the diagonal and q/3 elsewhere.     -   2. An 8-spectrum for the target was generated using the         probabilistic spectrum defined by P_(i) ({right arrow over         (x)})=1 −p if T({right arrow over (x)})=i, where p is a fixed         probability.         -   All probabilistic parameters were constant, i.e.,             position/k-mer independent. For each 8-spectrum and target             sequence, candidate sequences were scored using Eq. (10),             and a candidate sequence of maximal score was found.

The algorithm was implemented in C++ and executed on Linux and SGI machines. Running times, on a Pentium 3, 600 MHz machine, were roughly 0.12l log l seconds for an l-long reference sequence (ranging from roughly 7 minutes for a 500 bp-long sequence to 2.5 hours for 6 Kb). Only the main memory was used, with the application consuming at most 40 Mb. The graph was not reduced to its effective size. This would have reduced both space and time dramatically, at the expense of possibly missing the truly maximal scoring sequence.

The performance of the algorithm was quantified by the following FIGS. of merit:

-   -   1. Full success rate —The fraction of runs for which the target         sequence was perfectly reconstructed.     -   2. ε-success rate —The fraction of runs for which the target         sequence length 1 was reconstructed with fewer than ε•1         nucleotide errors.     -   3. Average sequencing error —The fraction of nucleotide errors.

Table 1 presents results for a scenario of distinct, but closely related sequences, e.g., orthologous genes in a pair of primates. We assume perfect hybridization data with 97% sequence similarity (that is q=0.03). The results show that sequences of length up to 2000 can be reconstructed almost perfectly. The non-monotonicity of the figures of merit with respect to the target length is due to sequence contents.

Table 2 presents results for a scenario of SNP-genotyping. The rate of SNPs is assumed to be 1:700 (Wang et al. 1998), and p=2% was used. The results show that a high success rate is achievable even in the presence of spectrum errors.

TABLE 1 # % full % ε-success % avg. Length runs success ε = 10⁻³ ε = 2 · 10⁻³ error  500 10 100 100  100  0.000 1000 10 100 100  100  0.000 1500 10 100 100  100  0.000 2000 17  94 94 94 0.003 2500 13  46 53 69 0.295 3000 14  71 78 78 0.488 3500  5  0 20 20 4.091 4000 13  76 84 84 2.173 4500 11  9 18 45 0.091 5000 15  0 13 53 4.149 5500  7  14 28 71 0.119 Table 1: Results on simulated date, for different sequence lengths, assuming 97% sequence similarity between the target and the reference, and perfect hybridization data.

TABLE 2 % full % ε-success % avg. Length # runs success ε = 10⁻³ ε = 2 · 10⁻³ error 250 10 100 100 100 0.000 500 10 100 100 100 0.000 750 10 90 90 100 0.013 1000 10 90 90 90 0.010 1250 10 90 100 100 0.032 1500 12 91 100 100 0.033 1750 10 60 80 80 0.109 2000 10 60 90 90 4.965 2500 10 0 80 100 10.312 3000 10 30 70 90 0.230 Table 2: Results on simulated data, for different sequence lengths, assuming p = 2% error the hybridization data, with 1:700 sequence difference.

It will also be understood that the system according to the invention may be a suitably programmed computer. Likewise, the invention contemplates a computer program being readable by a computer for executing the method of the invention. The invention further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the method of the invention. 

1. A method for obtaining one or more candidate nucleotide sequences, the candidate nucleotide sequences being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal I ({right arrow over (x)}) upon incubating T with a polynucleotide {right arrow over (x)} for each polynucleotide {right arrow over (x)} in a set E of polynucleotides, the method comprising the steps of: (a) for each polynucleotide {right arrow over (x)} in the set E of polynucleotides, obtaining a probability P_(o)({right arrow over (x)}) of the hybridization signal I ({right arrow over (x)}) when the sequence {right arrow over (x)} is not complementary to a subsequence of T and a probability P₁({right arrow over (x)}) of the hybridization signal when the sequence {right arrow over (x)} is complementary to a subsequence of T; so as to obtain a probabilistic spectrum (PS) of T; (b) assigning a score to each of a plurality of candidate nucleotide sequences, the score being obtained in a calculation using the probablistic spectrum and at least one reference nucleotide sequence H, the score being indicative of the candidate nucleotide sequence being a variant of H and furthermore being indicative of the probability that the candidate would give rise to the hybridization signal I ({right arrow over (x)}); and (c) selecting one or more candidate nucleotide sequences having a maximal score that is indicative of the sequence of the target polynucleotide molecule T.
 2. The method according to claim 1, wherein the polynucleotides {right arrow over (x)} in the set E are immobilized on surface.
 3. The method according to claim 1, wherein the set E is a set of k-mers.
 4. The method according to claim 3 wherein E is the set of all k-mers formed from nucleotides from a predetermined set of nucleotides.
 5. The method of claim 4, wherein the predetermined set of nucleotides is selected from the group consisting of (a) adenine, guanine, cytosine, and thymine; and (b) adenine, guanine, cytosine, and uracil.
 6. The method according to claim 1, wherein the score of a candidate nucleotide {circumflex over (T)} is obtained in a calculation using L^(e)({circumflex over (T)})where ${{L^{e}\left( \hat{T} \right)} = {\prod\limits_{\overset{\rightharpoonup}{x} = E}^{\quad}{P_{\overset{.}{T}{(\overset{\rightharpoonup}{x})}}\left( \overset{\rightharpoonup}{x} \right)}}},$ wherein {right arrow over (T)}({right arrow over (x)})=0 if the sequence of {right arrow over (x)} is not complementary to a subsequence of {circumflex over (T)} and {circumflex over (T)}(x)=1 if the sequence of {right arrow over (x)} is complementary to a subsequence of {circumflex over (T)}.
 7. The method according to claim 1, wherein the score of a candidate sequence {circumflex over (T)} is obtained in a calculation using {tilde over (L)}^(e)({circumflex over (T)}) where log ${{{\overset{\sim}{L}}^{e}\left( \hat{T} \right)} = {\sum\limits_{i = o}^{m}{\omega\left( e_{i} \right)}}},$ wherein {circumflex over (T)} contains polynucleotides e_(o), . . . e_(m) and ${\omega\left( e_{i} \right)} = {\log{\frac{P_{1}\left( e_{i} \right)}{P_{o}\left( e_{i} \right)}.}}$
 8. The method according the claim 1, wherein T and H have a common length.
 9. The method according to claim 8, wherein the score of a candidate sequence {circumflex over (T)} is obtained in a calculation using DU({circumflex over (T)}) where ${{D^{u}\left( \hat{T} \right)} = {\prod\limits_{j = 1}^{l}{M^{(f)}\left\lbrack {t_{j},h_{j}} \right\rbrack}}},$ wherein M^((j))[tj, hj], is a probability of a nucleotide t_(j) in position j of T being replaced with nucleotide h_(j) in position j of H.
 10. The method according to claim 9, wherein the score of a candidate nucleotide sequence {circumflex over (T)} is L^(e),({circumflex over (T)})+log D^(u)({circumflex over (T)})and Score^(u)2({circumflex over (T)})=log {tilde over (L)}^(e)({circumflex over (T)})+log D^(u)({circumflex over (T)}).
 11. The method according to claim 9, wherein the polynucleotides in the set E are k-mers, and the step of selecting the candidate nucleotide sequence having said maximal score comprises the steps of: (a) if the length l of the target is greater than a predetermined length, setting ${m = \frac{l + k - 1}{2}};$ (b) for each j=k -l, . . . m, computing S^(u)[{right arrow over (y)}, j] by ${{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}{\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}\quad{for}\quad{all}\quad\overset{\rightarrow}{y}}}}};$ (c) for each j=l, l-l, . . . m, computing R^(u)[{right arrow over (y)},j] by initializing for each y R ^(u) [{right arrow over (y)},l]=0 and looping over ${R^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {\max\limits_{e = {{({\overset{\rightarrow}{y},\overset{\rightarrow}{z}})} \in E}}\left\{ {{R^{u}\left\lbrack {\overset{\rightarrow}{z},{j + 1}} \right\rbrack} + {\omega(e)} + {L^{({j + 1})}\left\lbrack {z_{k - 1},h_{j + 1}} \right\rbrack}} \right\}}$ for all {right arrow over (y)}; (d) selecting ${{\overset{\rightarrow}{y}}_{m} = {\arg\quad{\max\limits_{\overset{\rightarrow}{y} \in \forall}\left\{ {{{Su}\left\lbrack {\overset{\rightarrow}{y},m} \right\rbrack} + {{Ru}\left\lbrack {\overset{\rightarrow}{y},m} \right\rbrack}} \right\}}}};$ and (e) computing the optimal sequence aligned to (h_(m) . . . h_(l) ending with {right arrow over (Y)}_(m), and the optimal sequence aligned to h_(m) . . . h_(l) beginning with {right arrow over (y)}_(m).
 12. The method according to claim 10 wherein the polynucleotides in the set E are k-mers and the step of selecting the candidate nucleotide sequence having said maximal score comprises the steps of (a) for each (k−1)-mer {right arrow over (y)} calculating ${{S\quad{u\left\lbrack {\overset{\rightharpoonup}{y},{k - 1}} \right\rbrack}} = {\sum\limits_{j = 1}^{k - 1}{{L(j)}\left\lbrack {y_{j}h_{j}} \right\rbrack}}},$ (b) for each integer j=k, . . . 1, (ba) for each polynucleotide sequence (^(y)1, . . . ^(y)k−1), (baa) calculating ${S^{u}\left\lbrack {y,j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightharpoonup}{z},\overset{\rightharpoonup}{y}})} \in E}}\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}}}$ wherein L^((j))[y,h_(j)]=log M^((j))[y,h_(j)] (bab) selecting a (k−1)-mer P [{right arrow over (y)},h _(j)] satisfying ${P\left\lbrack {\overset{\rightharpoonup}{y},j} \right\rbrack} = {\underset{{\overset{\rightharpoonup}{Z} = {< {Z_{0}Z_{1}\quad\ldots\quad Z_{k - 1}} >}},{E = {{({Z,y})} \in e}}}{argmax}\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}}$ (c) selecting a (k−1) mer Z¹ having a score essentially equal to ${\max\limits_{\overset{\rightharpoonup}{y} \in V}{S\quad{u\left\lbrack {\overset{\rightharpoonup}{y},l} \right\rbrack}}};$ (d) for j=k−1, . . . 1−1; reclusively calculating (k−1)-mers Zj where _(Zj−1=P[Zj,j])and (e) selecting candidate target sequence <z^(k−1)1, z^(k−1)2, . . . z^(k−1)k−1, z^(k)k−1, z^(k+1)k−1, . . . z¹k−1>, where Zj=<^(zj)1^(zj)2 . . . ^(zj)k−1>.
 13. The method according to claim 12, wherein algebraic equation (12a′), $\begin{matrix} {{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\log\underset{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}{\sum\exp}\left( {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right)}}} & \left( {12a^{\prime}} \right) \end{matrix}$ replaces algebraic equation (12a), $\begin{matrix} {{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}\left\{ {{S^{u}\left\lbrack {z,{j - 1}} \right\rbrack} + {\omega(e)}} \right\}}}} & \left( {12a} \right) \end{matrix}$ algebraic equation (12b′), $\begin{matrix} {{{MAX}{Score}}^{u} = {\log\quad{\sum\limits_{y\quad\varepsilon\quad V}{\exp\left( {{Su}\left\lbrack {\overset{\rightarrow}{y},l} \right\rbrack} \right)}}}} & \left( {12b^{\prime}} \right) \end{matrix}$ replaces algebraic equation (12b), $\begin{matrix} {{{MAX}\quad{Score}^{u}} = {\max\limits_{\overset{\rightarrow}{y} \in V}{S^{u}\left\lbrack {\overset{\rightarrow}{y},l} \right\rbrack}}} & \left( {12b} \right) \end{matrix}$ the algebraic equation (15′) $\begin{matrix} {{R^{u}\left\lbrack {\overset{\rightarrow}{y},l} \right\rbrack} = {\log\quad{\sum\limits_{e = {{({\overset{\rightarrow}{y},\overset{\rightarrow}{z}})} \in E}}{\exp\left( {{R^{u}\left\lbrack {\overset{\rightarrow}{z},{j + 1}} \right\rbrack} + {\omega(e)} + {L^{({j + 1})}\left\lbrack {z_{k - 1},h_{j + 1}} \right\rbrack}} \right)}}}} & \left( 15^{\prime} \right) \end{matrix}$ replaces algebraic equation (15), $\begin{matrix} {{R^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {\max\limits_{e = {{({\overset{\rightarrow}{y},\overset{\rightarrow}{z}})} \in E}}\left\{ {{R^{u}\left\lbrack {\overset{\rightarrow}{z},{j + 1}} \right\rbrack} + {\omega(e)} + {L^{({j + 1})}\left\lbrack {z_{k - 1},h_{j + 1}} \right\rbrack}} \right\}}} & (15) \end{matrix}$ and algebraic equation (16′) $\begin{matrix} {{{MAX}\quad{Score}^{u}} = {\log\quad{\sum\limits_{\overset{\rightarrow}{y} \in V}{\exp\left( {{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} + {R^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack}} \right)}}}} & \left( 16^{\prime} \right) \end{matrix}$ replaces algebraic equation (16) $\begin{matrix} {{{MAX}\quad{Score}^{u}} = {\max\limits_{\overset{\rightarrow}{y} \in V}{\left\{ {{S^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} + {R^{u}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack}} \right\}.}}} & (16) \end{matrix}$
 14. The method according to claim 1, wherein H and T have lengths such that the length of T is less than the length of H.
 15. The method according to claim 14, wherein the step of assigning a score to each of a plurality of candidate nucleotide sequences and the step of selecting the candidate target sequence are performed using an algorithm comprising: (a) setting, for each {right arrow over (y)}=y₁ . . . y_(k−1) ε[V],j=k=1, k, k+1, . . . , 1, S^(d)[{right arrow over (y)}, j] as the maximum score of aligning a sequence ending with {right arrow over (y)} to h₁ . . . h_(j) where h_(j) is aligned to a gap (and y_(k−)1 is aligned to some h_(i) . . . h_(j)); (b) setting T^(d)[{right arrow over (x)}j] as the maximum score of aligning a sequence ending with y₁ . . . y_(k−1) where h_(j) aligned to y_(k−1); (c) initializing for each {right arrow over (y)},: S^(d)[{right arrow over (y)}, k−1]=−∞;  (19) and $\begin{matrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{y},{k - 1}} \right\rbrack} = \left\{ {\begin{matrix} 0 & {\overset{\rightarrow}{y} = \vartriangleright^{k - 1}} \\ {- \infty} & {otherwise} \end{matrix}\text{;}} \right.} & (20) \end{matrix}$ (d) looping over j=k, . . . , l, and for each {right arrow over (y)}=(y_(l) . . . y_(k−)ε[V], and recursively updating: S^(d)[{right arrow over (y)}, j]=max{T^(d)[{right arrow over (y)}, j−1]+α_(j), S^(d)[{right arrow over (y)}, j−1]+β_(j)}  (21) $\begin{matrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}\left\{ {{\omega(e)} + {\max\begin{Bmatrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{z},{j - 1}} \right\rbrack} + {\hat{\alpha}}_{j}} \\ {{S^{d}\left\lbrack {\overset{\rightarrow}{z},{j - 1}} \right\rbrack} + {\hat{\beta}}_{j}} \end{Bmatrix}}} \right\}}}} & (22) \end{matrix}$ and (e) returning: MAXScore^(d) =T^(d)[^(k−1), l]  (23).
 16. The method according to claim 15, wherein algebraic equation S^(d)[{right arrow over (y)}, j]=log (exp(T^(d)[{right arrow over (y)}, j−1]+_(j))+exp(S^(d)[{right arrow over (y)}, j−1]+β_(j)))  (20′) replaces algebraic equation 20, $\begin{matrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{y},{k - 1}} \right\rbrack} = \left\{ \begin{matrix} 0 & {\overset{\rightarrow}{y} = \vartriangleright^{k - 1}} \\ {- \infty} & {otherwise} \end{matrix} \right.} & (20) \end{matrix}$ and algebraic equation (21′) $\begin{matrix} {{{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\log\quad{\sum\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}{\exp\left( {\omega(e)} \right)}}} + {T^{d}\left\lbrack {y,j} \right\rbrack}} = \quad{{+ \log}\quad\left( {{\exp\left( {{T^{d}\left\lbrack {\overset{\rightarrow}{z},{j - 1}} \right\rbrack} + \hat{\alpha}} \right)} + {\exp\left( {{S^{d}\left\lbrack {z,{j - 1}} \right\rbrack} + {\hat{\beta}}_{j}} \right)}} \right)}} & \left( 21^{\prime} \right) \end{matrix}$ replaces algebraic equation (21) S^(d)[{right arrow over (y)}, j]=max{T^(d)[{right arrow over (y)}, j−1]+α_(j), S^(d)[{right arrow over (y)}j−1]+β_(j)}  (21).
 17. The method according to claim 1, wherein H and T have arbitrary lengths.
 18. The method according to claim 17, wherein the step of assigning a score to each of a plurality of candidate nucleotide sequences and the step of selecting the candidate target sequence are performed using an algorithm comprising: (a) defining E' as the set of edges such that W′[{right arrow over (x)},{right arrow over (y)}]>0, wherein W′=â_(j)W+a_(j)b_(j){circumflex over (b)}_(j)W²(i−b_(j)W)⁻¹  (27) wherein $\begin{matrix} {{W\left\lbrack {\overset{\rightarrow}{x},\overset{\rightarrow}{y}} \right\rbrack} = \left\{ \begin{matrix} 2^{w{(\overset{\rightarrow}{y})}} & {{{The}\quad\left( {k - 1} \right)} - {{suffix}\quad{of}\quad\overset{\rightarrow}{x}}} \\ \quad & {{{is}\quad{the}\quad\left( {k - 1} \right)} - {{prefix}\quad{of}\quad\overset{\rightarrow}{y}}} \\ 0 & {Otherwise} \end{matrix} \right.} & (24) \end{matrix}$ and wherein a_(j) is the log-probability of initiating an insertion in the target after T_(j), b_(j) is the log-probability of extending an insertion in the target after T_(j), where T_(j) is the target prefix whose last nucleotide is aligned to h_(j) in the reference sequence, and â_(j)=1−a_(j), {circumflex over (b)}_(j)=1−b_(j); (b) defining w′(e)=log W′[{right arrow over (x)},{right arrow over (y)}]; (c) setting, for each {right arrow over (y)}=y₁ . . . y_(k−1)ε[V], j=k=1, k, k+1, . . . , 1, S^(d)[{right arrow over (y)}j] as the maximum score of aligning a sequence ending with {right arrow over (y)} to h₁ . . . h_(j) where h_(j) is aligned to a gap, and y_(k−1) is aligned to some h₁ . . . h_(j); (d) setting T^(d)[{right arrow over (x)}j] as the maximum score of aligning a sequence ending with y₁. . . h_(k−1) where h_(j) is aligned to y_(k−1); (e) initializing, for each {right arrow over (y)},: S^(d)[{right arrow over (y)}, k−1]=−∞; (19) $\begin{matrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{y},{k - 1}} \right\rbrack} = \left\{ {\begin{matrix} 0 & {\overset{\rightarrow}{y} = \vartriangleright^{k - 1}} \\ {- \infty} & {otherwise} \end{matrix};} \right.} & (20) \end{matrix}$ (f) looping over j=k, . . . , l, and for each {right arrow over (y)}=(y₁ . . . y_(k−1)ε, [V], and recursively updating: S^(d)[{right arrow over (y)}, j]=max {T^(d)[{right arrow over (y)}, j−1]+α_(j)S^(d)[{right arrow over (y)}j−1]+β}  (21) $\begin{matrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{y},j} \right\rbrack} = {{L^{(j)}\left\lbrack {y_{k - 1},h_{j}} \right\rbrack} + {\max\limits_{e = {{({\overset{\rightarrow}{z},\overset{\rightarrow}{y}})} \in E}}\left\{ {{\omega(e)} + {\max\begin{Bmatrix} {{T^{d}\left\lbrack {\overset{\rightarrow}{z},{j - 1}} \right\rbrack} + {\hat{\alpha}}_{j}} \\ {{S^{d}\left\lbrack {\overset{\rightarrow}{z},{j - 1}} \right\rbrack} + {\hat{\beta}}_{j}} \end{Bmatrix}}} \right\}}}} & (22) \end{matrix}$ and (g) returning: MAXScore^(d)=T^(d)[^(k−1), l]  (23) (23).
 19. The method according to claim 17, wherein the step of assigning a score to each of a plurality of candidate target sequence is performed using an algorithm comprising: (a) defining S for each q εQ,{right arrow over (y)}=y₁ . . . y_(k−1)ε[V], r=k, . . . , S[q,{right arrow over (y)}, r]as the maximum score of an r-long sequence ending with y₁ . . . y_(k−1) , whose alignment to the profile ends in q; (b) initializing: D[q_(start) ^(k−1 ]=)0  (28) S[q,{right arrow over (y)}k−1]=−∞for other values of {right arrow over (y)}q;   (29) (c) looping over r=k, . . . 1, and for each {right arrow over (y)}=y₁ . . . y_(k−1)ε[V], r≦l_(Q), recursively updating: $\begin{matrix} {{S\left\lbrack {q,\overset{\rightarrow}{y},r} \right\rbrack} = {{L^{q}\left\lbrack y_{k - 1} \right\rbrack} + {\max\limits_{\underset{q^{\prime}|{q^{\prime}\mapsto q}}{e = {{({E,q})} \in E}}}\left\{ {{S\left\lbrack {q^{\prime},\overset{\rightarrow}{z},{r - 1}} \right\rbrack} + {{lpb}\left( q^{\prime}\mapsto q \right)} + {\omega(e)}} \right\}}}} & (30) \end{matrix}$ and (d) returning: MAXScore={S[q_(end1) ^(k−1), l]}  (31).
 20. The method according to claim 19 wherein a Hidden Makov Model of a reference sequence.
 21. The method according to claim 19, wherein algebraic equation (29′), $\begin{matrix} {{S\left\lbrack {q,\overset{\rightarrow}{y},r} \right\rbrack} = {{L^{q}\left\lbrack y_{k - 1} \right\rbrack} + {\sum\limits_{\underset{q^{\prime}|{q^{\prime}\mapsto q}}{e = {{({E,q})} \in E}}}{\exp\left( {{S\left\lbrack {q^{\prime},\overset{\rightarrow}{z},{r - 1}} \right\rbrack} + {{lpb}\left( q^{\prime}\mapsto q \right)} + {\omega(e)}} \right)}}}} & \left( 29^{\prime} \right) \end{matrix}$ replaces algebraic equation (29), S[q,{right arrow over (y)},k−1]=−∞for other values of {right arrow over (y)},q  (29), and algebraic equation (30′) $\begin{matrix} {{{MAX}\quad{Score}} = {\log\quad{\sum\limits_{l}{\exp\left( {S\left\lbrack {{q_{end1} \vartriangleleft^{k - 1}},l} \right\rbrack} \right)}}}} & \left( 30^{\prime} \right) \end{matrix}$ replaces algebraic equation (30), $\begin{matrix} {{S\left\lbrack {q,\overset{\rightarrow}{y},r} \right\rbrack} = {{L^{q}\left\lbrack y_{k - 1} \right\rbrack} + {\max\limits_{\underset{q^{\prime}|{q^{\prime}\mapsto q}}{e = {{({E,q})} \in E}}}{\left\{ {{S\left\lbrack {q^{\prime},\overset{\rightarrow}{z},{r - 1}} \right\rbrack} + {{lpb}\left( q^{\prime}\mapsto q \right)} + {\omega(e)}} \right\}.}}}} & (30) \end{matrix}$
 22. The method according to any one of the previous claims wherein the target comprises two or more polynucleotide molecules.
 23. The method according claim 1 comprising computing the exact score L^(e)({circumflex over (T)}) for several candidate sequences chosen according to the value of the approximated score {tilde over (L)}^(e) ({circumflex over (T)}).
 24. The method according to claim 1 further comprising a step of deleting candidate sequences having likelihood below a predetermined score.
 25. The method according to claim 1, wherein the score of a candidate nucleotide sequence {circumflex over (T)} is obtained in a calculation using L^(e)({circumflex over (T)}) where ${{{\underset{\_}{L}}^{e}\left( \hat{T} \right)} = {\prod\limits_{\overset{\rightarrow}{x} \in E}{P_{\underset{\_}{\hat{T}{(\overset{\rightarrow}{x})}}}\left( \overset{\rightarrow}{x} \right)}}},$ wherein T({right arrow over (x)})=r if the sequence of {right arrow over (x)} is complementary to exactly r subsequences of {right arrow over (T)}.
 26. The method according to claim 1, wherein the set E of polynucleotides does not include all the polynucleotides of a specific length.
 27. The method according to claim 1, wherein the set E of polynucleotides includes polynucleotides of different lengths.
 28. The method according to claim 1, comprising using the selected one or more candidate nucleotide sequences in a task selected from the group consisting of: (a) detecting or genotyping of Single Nucleotide Polymorphisms; (b) detecting or genotyping of genetic syndromes or disorders; (c) detecting or gentotying somatic mutations; and (d) sequencing a polynucleotide whose function is related to the function of the reference polynucleotide.
 29. The method according to claim 1, wherein polynucleotides contain gaps, or universal bases.
 30. The method according to claim 1, wherein polypeptides are sequenced instead of polynucleotides.
 31. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for obtaining a candidate nucleotide sequence, the candidate nucleotide sequence being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal I ({right arrow over (x)}) upon incubating T with a polynucleotide {right arrow over (x)} for each polynucleotide {right arrow over (x)} in a set E of polynucleotides, the method comprising the steps of: (a) for each polynucleotide x in the set E of polynucleotides, obtaining a probability P₀ of I({right arrow over (x)}) when the sequence {right arrow over (x)} is not complementary to a subsequence of T and a probability P₁({right arrow over (x)}) of I ({right arrow over (x)}) when the sequence {right arrow over (x)} is complementary to a subsequence of T; so as to obtain a probabilistic spectrum (PS) of T; (b) assigning a score to each of a plurality of candidate nucleotide sequences, the score being obtained in a calculation using the probabilistic spectrum and upon at least one reference nucleotide sequence H, the score being indicative of the candidate nucleotide sequence being a variant of H and furthermore being indicative of the probability that the candidate would give rise to the hybridization signal I ({right arrow over (x)}); and (c) selecting one or more candidate nucleotide sequences having a maximal score that is indicative of the sequence of the target polynucleotide molecule T.
 32. A computer program product comprising a computer useable medium having computer readable program code embodied therein for obtaining a candidate nucleotide sequence, the candidate nucleotide sequence being indicative of a sequence of a target polynucleotide molecule T, T producing a hybridization signal I ({right arrow over (x)}) upon incubating T with a polynucleotide {right arrow over (x)} for each polynucleotide {right arrow over (x)} in a set E of polynucleotides, the computer program product comprising: (a) for each polynucleotide {right arrow over (x)} in the set E of polynucleotides, computer readable program code for causing the computer to obtain a probability P₀({right arrow over (x)}) of I({right arrow over (x)}), the sequence {right arrow over (x)} is not complementary to a subsequence of T and a probability P_(1({right arrow over (x)})) of I ({right arrow over (x)}) when the sequence {right arrow over (x)} is complementary to a subsequence of T; (b) computer readable program code for causing the computer to assign a score to each of a plurality of candidate nucleotide sequences, the score obtained in a calculation using the probabilistic spectrum and at least one reference nucleotide sequence H, the score being indicative of the candidate nucleotide sequence being a variant of H and furthermore being indicative of the probability that the candidate would give rise to the hybridization signal I ({right arrow over (x)}); and (c) computer readable program code for causing the computer to select a candidate nucleotide sequence having a maximal score that is indicative of the sequence of the target polynucleotide molecule. 